# 抛出错误
'''
因为错误是class, 捕获一个错误是捕获到该class的一个实例。因此，错误并不是凭空产生的，而是有意创建并抛出的。Python的内置函数会抛出很多类型的错误
我们自己编写的函数也可以抛出错误
'''
# 如果抛出错误，首先根据需要，可以定义一个错误的class, 选择好继承关系，然后，用raise 语句抛出一个错误的实力：
class FooError(ValueError):
    pass
def foo(s):
    n = int(s)
    if n == 0:
        raise FooError('invalid value: %s' % s)
    return 10 / n
foo('666')
foo('0')
'''
Traceback (most recent call last):
  File "G:\www_data\python_project\python-demo\liaoxuefeng\09-错误处理\raise_except.py", line 15, in <module>
    foo('0')
  File "G:\www_data\python_project\python-demo\liaoxuefeng\09-错误处理\raise_except.py", line 12, in foo
    raise FooError('invalid value: %s' % s)
FooError: invalid value: 0
'''